#include <vector>
using namespace std;
int integerBreak(int n) {
  // dp[i] 正数n被拆分成后的最大乘积
  vector<int> dp(n + 1, 0);
  // 递推公式 dp[i] = max(dp[i], j*(i-j), j*dp[i-j])
  // 初始化
  dp[0] = 0;
  dp[1] = 0;
  dp[2] = 1;
  for (int i = 3; i <= n; ++i) {
    for (int j = 1; j < i; ++j) {
      dp[i] = max(dp[i], max(j * (i - j), j * dp[i - j]));
    }
  }
  return dp[n];
}